/**
 * 创建 "用于存储被 @JsonProperty 装饰的属性的元数据" 的键名.
 */
export function createPropDataMetaKey(): string {
  return 'serializer:props';
}

/**
 * 创建 "@Serializable" 键名.
 */
export function createSerializableMetaKey(): string {
  return 'serializer:serializable';
}

/**
 * 检测目标值是否被 @Serializable 装饰.
 *
 * @param {*} target
 * @returns {boolean}
 */
export function checkIsSerializable(target: any): boolean {
  return Reflect.hasOwnMetadata(createSerializableMetaKey(), target);
}
